状態管理アプローチのリスト
状態管理は複雑なトピックです。 質問の一部が解決されていないと思われる場合は、 または、これらのページで説明されているアプローチ あなたのユースケースでは実行できません。おそらくあなたは正しいでしょう。
詳細については、次のリンクをご覧ください。 その多くは Flutter コミュニティによって提供されています。
総括
アプローチを選択する前に確認すべき事項。
- 状態管理の概要、 これがまさにこのセクションの始まりです (直接ここに来られた方へオプションページ 前のページを見逃しました)
- Flutter での実際的な状態管理、 Google I/O 2019 のビデオ
- flutter アーキテクチャのサンプル、ブライアン・イーガン著
プロバイダー
- シンプルなアプリ状態管理、このセクションの前のページ
- プロバイダーパッケージ
リバーポッド
Riverpod は Provider と同様の方法で動作します。 Flutter SDK に依存せずにコンパイルの安全性とテストを提供します。
- リバーポッドホームページ
- リバーポッドを使い始める
setState
ウィジェット固有の一時的な状態に使用する低レベルのアプローチ。
- Flutter アプリにインタラクティブ性を追加する、Flutter チュートリアル
- Google Flutterの基本的な状態管理、アグン・スーリヤ著
継承されたウィジェットと継承されたモデル
祖先と子の間で通信するために使用される低レベルのアプローチ ウィジェットツリー内。これは何d357be56-5cbb-4389-adcd-4ce422279068その他多くのアプローチ ボンネットの下で使用します。
次のインストラクター主導のビデオ ワークショップでは、次の方法について説明します。
使用InheritedWidget
:
その他の役立つドキュメントは次のとおりです。
- 継承されたウィジェットのドキュメント
- InheritedWidget を使用した Flutter アプリケーションの状態の管理、 ハンス・ミュラー著
- ウィジェットの継承、メフメット・フィダンボイル著
- Flutter 継承ウィジェットを効果的に使用する、エリック・ウィンドミル著
- ウィジェット - 状態 - コンテキスト - InheritedWidget、ディディエ・ボレレンズ著
戻ってきた
多くの Web 開発者にとって馴染みのある状態コンテナーのアプローチ。
- Redux と Flutter によるアニメーション管理、 DartConf 2018 のビデオMedium の関連記事
- Flutter Redux パッケージ
- Redux Saga ミドルウェア Dart and Flutter、ビラル・ウスル著
- Flutter での Redux の概要、シャビ・リゴー著
- Flutter + Redux — 買い物リスト アプリの作り方、 パウリナ・シュクラルスカ著、Hackernoon
- Redux を使用した Flutter での TODO アプリケーション (CRUD) の構築—パート 1、 Tensor Programming によるビデオ
- Flutter Redux サンク、例、ジャック・ウォン著
- Redux を使用した (大規模な) Flutter アプリの構築、ヒレル・コレン著
- Fish-Redux – Redux に基づいて組み立てられた flutter アプリケーション フレームワーク、 アリババ著
- 非同期 Redux – ボイラープレートのない Redux。同期と非同期の両方のリデューサーを許可します、 マルセロ・グラスバーグ著
- Flutter と Redux の出会い: Flutter アプリケーションの状態を管理する Redux の方法、 アミール・ゲゼルバシュ著
- Flutter アプリでコードをより適切に整理するための Redux とエピック、ニハド・デリック著
- Flutter_Redux_Gen - 定型コードを生成する VS Code プラグイン、Balamurugan Muthusamy (BalaDhruv) 著
フィッシュリダックス
Fish Redux は組み立てられた flutter アプリケーション フレームワークです Redux の状態管理に基づいています。 中規模および大規模なアプリケーションの構築に適しています。
- Fish-Redux-ライブラリパッケージ、アリババ製
- Fish-Redux-ソース、プロジェクトコード
- flutterムービー, その方法を示す重要な例 Fish Redux を使用するには、30 を超える画面、graphql、 支払い API、メディア プレーヤー。
BLoC / Rx
ストリーム/オブザーバブルベースのパターンのファミリー。
- BLoC パターンを使用して Flutter プロジェクトを設計する、 サガール・スリ著
- BloC ライブラリ、フェリックス・アンジェロフ著
- リアクティブ プログラミング - ストリーム - BLoC - 実用的な使用例、 ディディエ・ボーレンス著
それを得る
サービス ロケーター ベースの状態管理アプローチ。
必要ありませんBuildContext
。
- GetItパッケージ、サービスロケーター。 BloC と併用することもできます。
-
GetIt Mixin パッケージ、完了するミックスイン
GetIt
完全な状態管理ソリューションに移行します。 -
GetIt フック パッケージのミックスインと同じ
すでに使用しているケース
flutter_hooks
。 - ミニマリストのための flutter状態管理、スラグチ著
モブX
観測値と反応に基づいた人気のあるライブラリ。
- MobX.dart、Dart および Flutter アプリの手間のかからない状態管理
- MobX.dart を始める
- Flutter: Mobx による状態管理、ポール・ハリデーによるビデオ
flutterコマンド
コマンドパターンを使用したリアクティブな状態管理
そしてそれに基づいていますValueNotifiers
。との組み合わせが最適それを得る、でも使用できますProvider
またはその他の
ロケーターも。
- Flutterコマンドパッケージ
-
RxCommandパッケージ、
Stream
ベースの実装。
バインダー
を使用する状態管理パッケージInheritedWidget
その核心部分にある。部分的には反動からインスピレーションを得たものです。
このパッケージは、懸念事項の分離を促進します。
- バインダーパッケージ
- バインダーの例
- バインダーのスニペット、vscode スニペットはさらに便利になります バインダーで生産性を高める
GetX
簡素化されたリアクティブ状態管理ソリューション。
- GetX パッケージ
- GetX Flutter Firebase 認証の例、ジェフ・マクモリス著
states_rebuilder
状態管理と 依存関係注入ソリューションと統合ルーター。 詳細については、次の情報を参照してください。
- ステート・リビルダープロジェクトコード
- ステート リビルダーのドキュメント
トリプルパターン(分割状態パターン)
Triple は、次の状態管理のパターンです。Streams
またValueNotifier
。
この仕組み(愛称)トリプルストリームは常に 3 つを使用するため、
値:Error
、Loading
、 とState
)に基づいています。セグメント化された状態パターン。
詳細については、次のリソースを参照してください。
- トリプルドキュメント
- flutterトリプルパッケージ
- トリプル パターン: Flutter での状態管理の新しいパターン(ブログ投稿はポルトガル語で書かれていますが、自動翻訳できます)
- ビデオ: flutter トリプル パターン by Kevlin Ossada(英語で録音されています)
ソリッドアート
SolidJS からインスピレーションを得た、シンプルだが強力な状態管理ソリューション。
- 公式ドキュメント
- ソリッドアートパッケージ
- flutter_solidart パッケージ
flutter_reactive_value
のflutter_reactive_value
ライブラリは状態に対して最も複雑でないソリューションを提供する可能性があります
Flutterでの管理。 Flutter の初心者が UI に反応性を追加するのに役立つかもしれません。
前述したような複雑なメカニズムは必要ありません。
のflutter_reactive_value
ライブラリはreactiveValue(BuildContext)
拡張メソッドValueNotifier
。この拡張機能により、Widget
に
の現在の値を取得します。ValueNotifier
と
購読するWidget
の値の変化にValueNotifier
。
の値がValueNotifier
変化、Widget
再構築します。
-
flutter_reactive_value
ソースとドキュメント